package com.ibeeking.found.msg.rest.service;

import com.ibeeking.found.msg.service.common.bo.MsgTypeBO;
import com.ibeeking.found.msg.service.common.bo.SendSmsParamBo;
import com.ibeeking.found.msg.service.common.param.SmsTypeParam;
import com.ibeeking.found.msg.service.common.query.MsgTypePageQuery;
import com.ibeeking.found.msg.service.common.vo.MsgTypePageVO;
import com.ibeeking.found.msg.service.common.vo.MsgTypeVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;


/**
 * IMsgTypeService
 *
 * @Author ibeeking
 * @Date 2020-12-09 10:53
 */
public interface IMsgTypeService {

    /***
     * 新增
     */
    Boolean add(SmsTypeParam smsTypeParam);

    /***
     * 修改
     */
    Boolean modify(SmsTypeParam smsTypeParam);

    /***
     * 通过id查询
     */
    MsgTypeVO view(Long id);

    /***
     * 通过id查询
     */
    MsgTypeBO queryById(Long id);

    /***
     * 修改状态
     */
    Boolean changeStatus(Long id, Integer status, Long userId);

    /***
     * 通过id删除
     */
    Boolean del(Long id);

    /**
     * 分页查询
     *
     * @param msgTypePageQuery
     * @return
     */
    Page<MsgTypePageVO> pageList(MsgTypePageQuery msgTypePageQuery);

    /**
     * 校验类型名称
     *
     * @param name
     * @return
     */
    Long checkName(String name);

    /**
     * 校验编码
     *
     * @param code
     * @return
     */
    Long checkCode(String code);

    MsgTypeBO queryByCode(String code);

    SendSmsParamBo querySmsParamByCode(String code, Integer tenantId);
}
